import { get, post } from './index';

/**
 * 用户接口
 * @type {{isLogin(): AxiosPromise, verifyPhone(*): AxiosPromise, publicUrl: string, sms(*): AxiosPromise<any>, login(*): Promise<AxiosResponse<*>>, register(*): Promise<AxiosResponse<*>>}}
 */
export const userApi = {
    publicUrl: '/user',
    /**
     * 短信接口
     * @param phone
     * @returns {AxiosPromise}
     */
    sms(phone) {
        return post(this.publicUrl + '/sms.php', {
            data: {
                phone
            }
        })
    },
    /**
     *头像上传
     * @param avatarUrl
     */
    upLoadAvatarAdd(avatarUrl) {
        return post(this.publicUrl + '/upLoadAvatar.php', {
            data: {
                avatarUrl
            }
        })
    },
    /**
     * @desc 登陆接口
     * @param data
     * @returns {Promise<AxiosResponse<any>>}
     */
    login(data) {
        return post('/login.php', {
            data
        }).then((res) => {
            localStorage.setItem('userInfo', JSON.stringify(res.data))
            return Promise.resolve(res.data)
        }).catch(() => {
        })
    },
    /**
     * @desc 注册接口
     * @param data
     * @returns {Promise<AxiosResponse<any>>}
     */
    register(data) {
        return post(this.publicUrl + '/register.php', {
            data
        })
    },
    /**
     * @desc 检测用户是否登陆状态
     * @returns {AxiosPromise}
     */
    isLogin() {
        return post('/isLogin.php')
    },
    /**
     * 检测手机号码是否被注册
     * @param headers
     * @returns {AxiosPromise}
     */
    verifyPhone(phone) {
        return post(this.publicUrl + '/verifyPhone.php', {
            data: {
                phone
            }
        })
    },
    /**
     * 获取当前登录用户信息
     */
    currentUser() {
        return get(this.publicUrl + '/currentUser.php')
    },
    /**
     * 修改当前登录用户信息
     * @param {*} data 
     * @returns 
     */
    modifyingCurrentUser(data) {
        return post(this.publicUrl + '/modifyingCurrentUser.php', {
            data
        })
    },
    /**
     * 修改当前登录用户密码
     */
    modifyingCurrentUserPassword(data) {
        return post(this.publicUrl + '/modifyingCurrentUserPassword.php', {
            data
        })
    },
    /**
     * 退出登录
     */
    userOut() {
        return get(this.publicUrl + '/userOut.php')
    },
    /**
     * 获取其他用户信息
     * @param {*} data 
     * @returns 
     */
    userPublicInfo(uid) {
        return post(this.publicUrl + '/userPublicInfo.php', {
            data: {
                uid
            }
        })
    },


}


export const common = {
    upLoadAvatar(e) {
        let formData = new FormData()
        formData.append('file', e.target.files[0])
        return post('/common/filesUpload.php', {
            data: formData,
            processData: false,// 告诉axios不要去处理发送的数据(重要参数)
            contentType: false,   // 告诉axios不要去设置Content-Type请求头
        })
    }
}


/**
 * 文章接口
 * @type {{}}
 */
export const artApi = {
    /**
 *  发布接口
 * @param {*} data 
 */
    isPost(data) {
        return post('/art/post.php', {
            data
        })
    },
    islist() {
        return get(' /art/list.php')
    },
    articleViews(params) {
        return get(' /art/articleViews.php', {
            params
        })
    },
    isclassPost(data) {
        return post('/category/post.php ', {
            data
        })
    },
    category(data) {
        return post('/category/list.php ', {
            data
        })
    },
    /**
     * 文章评论列表
     * @returns 
     */
    commentList(params) {
        return get(' /comment/commentList.php', {
            params
        })
    },
    /**
     * 发布评论
     * @param {*} data 
     * @returns 
     */
    isstartpost(data) {
        return post('/comment/post.php ', {
            data
        })
    },
    /**
     * 
     * @returns 文章点赞
     */
    artPraise(params) {
        return get(' /art/artPraise.php',{
            params
        })
    },
    /**
     * 文章用户点赞状态查询
     * @returns 
     */
    givealike(params) {
        return get(' /art/art_user_praise_state.php',{
            params
        })
    },
}


